import java.util.Random;
import java.util.Scanner;

public class J04zuoye {
}
/*
1，珠穆朗玛峰
世界上最高山峰是珠穆朗玛峰（8844.43米=8844430毫米），假如有一张足够大的纸，它的
厚度是0.1毫米。请问折叠多少次，可以折成珠穆朗玛峰的高度？

review
 */
class ZhuMu{
    public static void main(String[] args) {
        //纸张的初始高度
        double height = 0.1;
        //折纸次数
        int count = 0;
        while (height<8844430){
            height *= 2;
            count++;
        }
        System.out.println("count = " + count);
        System.out.println("height = " + height);
    }
}

/*
2，求最值
编写代码，随机产生10个[5, 30]之间的整数， 输出这个10个随机数，并计算出10个数中的最大值， 最小值， 和以及平均数。

生成一个输出一个
1 4 7 ，9 2,4
 */
class ZuiTest{
    public static void main(String[] args) {
        int max=0;//最大值
        int min=101;//最小值
        int sum=0;//和

        Random r = new Random();
        for (int i = 0; i < 10; i++) {
            //缓存，临时的
            int temp = r.nextInt(30-5+1)+5;
            sum += temp;
            //求最大值
            if(temp>max){
                max = temp;
            }
            //求最小值
            if(temp<min){
                min = temp;
            }
            System.out.print(temp+" ");
        }
        System.out.println();
        System.out.println("sum = " + sum);
        System.out.println("avg = " + sum/10.0);
        System.out.println("max = " + max);
        System.out.println("min = " + min);
    }
}

/*
3，1-100的和
通过do..while循环计算1+2+3+...+100的和。
 */
class Sum100{
    public static void main(String[] args) {
        int num = 1;
        int sum = 0;
//        do {
//            sum += num;
//            num++;
//            if(num==101){
//                break;
//            }
//        }while (true);
        do {
            sum += num;
            num++;
        }while (num<=100);
        System.out.println("sum = " + sum);
    }
}
/*
4，降序数字
创建一个CheckNumber类, 在类的main方法里编写代码, 完成如下功能:
输入一个三位整数，判其是不是降序数. 例如:531是降序数, 百位>十位>个位
 */
class CheckNumber{
    public static void main(String[] args) {
        Random r = new Random();
        for (int i = 0; i < 100; i++) {
            int num = r.nextInt(999-100+1)+100;
            //765
            int ge = num%10;
            int shi = num/10%10;
            int bai = num/10/10%10;
            if(bai>shi && shi>ge){
                System.out.println(num+"是降序");
            }else {
                System.out.println(num+"不是降序");
            }
            System.out.println("=======");
        }

    }
}
/*
创建一个CheckPrimeNumber类, 在类的main方法里编写代码, 完成如下功能:
(1) 从控制台输入一个大于1的正整数.
(2) 计算输入的数字是不是一个质数.
(3) 如果输入的数字是一个质数, 打印"数字xx是质数", 如果不是质数, 打印"数字xx, 不是质数".
提示: 质数也叫素数, 是指在大于1的自然数中，除了1和它本身以外不再有其他因数的自然数。
 */
class CheckPrimeNumber{
    public static void main(String[] args) {
        int num = 329;
//        int num = 9;
        //假如num是质数
        boolean isPrime = true;
        for (int i = 2; i <= num/2; i++) {
            if(num%i==0){
                //找到约数，不是质数
                System.out.println("数字不"+num+"是质数"+i);
                isPrime = false;
                break;
            }
        }
        if(isPrime)System.out.println("数字"+num+"是质数");
    }
}
class CheckPrimeNumber2 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入一个大于1的正整数");
        int a=scanner.nextInt();
        int count=0;//整除次数
        for (int i = 1; i <=a ; i++) {
            if(a%i==0) {
                count++;
            }
        }
        System.out.println(count);
        if (count==2){
            System.out.println("是质数");
        }else {
            System.out.println("不是质数");
        }
    }
}
/*
x>1
x%2!=0


100 /2 = 50
2,3,4,5,,,50,51,52...
101 / 2 = 50
2,3,4,50,


//        int a=0;
//        int b=0;
//        do {
//              a++;
                // 1 + 2,....+99+100,
//              b+=a;
//        }while (a<100);
//        System.out.println(b);

Scanner scanner=new Scanner(System.in);

        System.out.println("请输入一个三位数");
        int a=scanner.nextInt();
        int ge=a%10;
        int shi=a/10%10;
        int bai=a/100;
        if (a>99&&a<1000) {
            if (bai>shi&&shi>ge) {
                System.out.println("输入的是降序数");
            } else {
                System.out.println("输入的不是降序数");
            }
        }else {
            System.out.println("输入的不是三位数");
        }

 */

/*
7，百钱买百鸡
我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题，题意是这样的：5文钱可
以买一只公鸡，3文钱可以买一只母鸡，1文钱可以买3只小鸡。现在用100文钱买100只鸡，那么各有公鸡、母鸡、小鸡多少只？请编写程序实现。

公鸡：x
母鸡：y
小鸡：z

x + y + z = 100;
5x + 3y + z/3 = 100;
 */
class Chicken {
    public static void main(String[] args) {
        //gj公鸡数量
//        for (int gj = 0; gj <= 20; gj++) {
//            //母鸡数量
//            for (int mj = 0; mj <= 33; mj++) {
//                //小鸡的数量
//                int xj = 100 - gj - mj;
//                //钱数正好100，小鸡除3除尽
//                if(gj*5+mj*3+xj/3==100 && xj%3==0){
//                    System.out.println("公鸡"+gj+"，母鸡"+mj+"，小鸡"+xj);
//                }
//            }
//        }



        //6.百钱买百鸡，钱花完，最多各买多少只鸡
        int money1 = 100 / 5;
        int money2 = 100 / 3;
        int money3 = 100;//
        for (int i = 0; i < money1; i++) {
            for (int j = 0; j < money2; j++) {
                for (int k = 0; k < money3; k+=3) {
                    if (i + j + k == 100 && 5 * i + 3 * j + k / 3 ==100) {
                        System.out.println("公鸡:"+i+" "+"母鸡:"+j+" "+"小鸡:"+k);
                    }
                }
            }
        }

    }
}
class Chicken2 {
    public static void main(String[] args) {
        int money=100;
        int chickens=100;
        for (int gj=0;gj<=chickens;gj++){
            for (int mj=0;mj<=chickens;mj++){
                int xj=chickens-gj-mj;
                int totleMoney=gj*5+mj*3+xj/3;
                if (totleMoney==money&&xj%3==0){
                    System.out.println("公鸡："+gj+"母鸡："+mj+"小鸡："+xj);
                }
            }

        }

    }
}

/*
   *
  ***
 *****
*******

* 星星规律
* 1,1 星星数 = 2 * 行数 - 1
* 2,3
* 3,5
* 4,7
*
* 空格数
 * 1 - 3  空格数 + 行数 = 4 -> 空格数 = 4 - 行数
 * 2 - 2
 * 3 - 1
 * 4 - 0
 */
class Jiao3{
    public static void main(String[] args) {


        //i代表行数
        for (int i = 1; i <= 4; i++) {

            //只考虑空格
            for (int j = 1; j <= 4-i; j++) {
                System.out.print(" ");
            }

            //只考虑星星
            //2n-1
            //打印每行的星星
            for (int j = 1; j <= 2*i-1; j++) {
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
    }
}

class Jiao32{
    public static void main(String[] args) {
        //总行数
        int count = 10;

        //i代表行数
        for (int i = 1; i <= count; i++) {

            //只考虑空格
            for (int j = 1; j <= count-i; j++) {
                System.out.print(" ");
            }

            //只考虑星星
            //2n-1
            //打印每行的星星
            for (int j = 1; j <= 2*i-1; j++) {
                System.out.print("*");
            }
            //换行
            System.out.println();
        }

        System.out.println("=====shiwen=====");

        for (int i = 1; i <= 4; i++) {
            for (int j = 0; j < 4 - i; j ++) {
                System.out.print(" ");
            }
            for (int j = 1; j < i*2; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}